java经典问题 您所在的位置:网站首页 java求整数的位数用else if java经典问题

java经典问题

2024-05-11 07:20| 来源: 网络整理| 查看: 265

题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。 

public class Number {int number;State current;int count;int[] charInNumber;public Number() {current = new OneState();}public int getNumber() {return number;}public void setNumber(int number) {this.number = number;}public State getCurrent() {return current;}public void setCurrent(State current) {this.current = current;}public void getCount(){current.getCount(this);}//求每位数字public void getChars(){charInNumber = new int[count];int temp = number;if(count >= 2){for(int i = 0; i < count; i ++){charInNumber[i] = temp / (getValue(count - 1 - i));temp = temp % (getValue(count - 1 - i));if(temp < 10){charInNumber[i + 1] = temp;break;}}}else{charInNumber[0] = temp;}}//求十的阶乘,感觉好蠢的方法public int getValue(int count){int value = 1;for(int i = 0; i < count; i ++){value = value * 10;}return value;}}public abstract class State {public abstract void getCount(Number number);}public class OneState extends State {@Overridepublic void getCount(Number number) {if(number.getNumber() < 10 ){number.count = 1;number.getChars();}else{number.setCurrent(new TwoState());number.getCount();}}}public class TwoState extends State {@Overridepublic void getCount(Number number) {if(number.getNumber() < 100){number.count = 2;number.getChars();}else{number.setCurrent(new ThreeState());number.getCount();}}}public class ThreeState extends State {@Overridepublic void getCount(Number number) {if(number.getNumber() < 1000){number.count = 3;number.getChars();}else{number.setCurrent(new FourState());number.getCount();}}}public class FourState extends State {@Overridepublic void getCount(Number number) {if(number.getNumber() < 10000){number.count = 4;number.getChars();}else{number.setCurrent(new FiveState());number.getCount();}}}public class FiveState extends State {@Overridepublic void getCount(Number number) {if(number.getNumber() < 100000){number.count = 5;number.getChars();}}}public class Practise24 {private void getResult(){System.out.println("请输入一个不多于5位的正整数");Scanner scan = new Scanner(System.in);int input = scan.nextInt();Number number = new Number();number.setNumber(input);number.getCount();System.out.println(number.getNumber() + " 是 " + number.count +"位数");System.out.println();for(int i = number.count - 1; i >= 0; i --){System.out.print(" "+number.charInNumber[i]);}}public static void main(String[] args) {(new Practise24()).getResult();}}

java经典问题——求正整数的位数 Java编程:用两种方法求输入正整数的位数。 java经典算法_023给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。 java 输入一个正整数求各个位数这和 java经典问题——求年纪 Tyvj 水题begin 求一个正整数位数的常用方法 求正整数的位数,依次输出,逆序打印 1006求正整数的位数及各位数字和 一个正整数的位数 java求整数的位数 java中如何获取一个正整数的位数? 求一组正整数的最小公倍数问题 java经典问题——求前20项之和 java经典问题——递归求阶乘 java经典问题——求前20项阶乘的和 SDUT 3503 有两个正整数,求N!的K进制的位数 NYOJ 90 —— 求正整数n划分为若干个正整数的划分个数 【程序24】TestNumber.java 题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。 android 用gson解析json的时候报空指针 站长的悲剧 新征程 java经典问题——求年纪 centos_5.4 安装中文支持 java经典问题——求正整数的位数 Linux下使用daemon函数编写后台程序 Oracle数据库权限管理学习笔记 python使用opengl绘制竹叶的十字型 Session会在浏览器关闭后消失吗??? 学习方法 POJ 1260 Pearls 2012.12.4(mysql事务处理) Ant__helloword


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有